package com.bosssoft.hr.javase;

/**
 * @Description: Queue
 * @Author: WengYu
 * @CreateTime: 2022/05/13 11:45
 */
public interface Queue<T> {
    /**
     * 添加数据加入，失败抛出异常
     *
     * @param data T 需要加入的数据
     * @return boolean
     */
    boolean add(T data);

    /**
     * 加入失败返回false
     *
     * @param data 需要加入的数据
     * @return boolean
     */
    boolean offer(T data);

    /**
     * 移除队首 如果队列空则抛出异常
     *
     * @return T
     */
    T remove();

    /**
     * 移除队首
     *
     * @return T
     */
    T poll();

    /**
     * 取得队首元素
     *
     * @return T
     */
    T element();

    /**
     * 取得队首元素如果队列为空则抛出异常
     *
     * @return T
     */
    T peek();
}
